#include <iostream>
#include <gtest/gtest.h>
#include <unordered_map>

class MyTest : public testing::Test{
    public:
        static void SetUpTestCase()
        {
            std::cout<<"所有单元测试执行前，初始化总环境\n";
            //假设这里有一个全局测试的数据容器，这里插入公共数据
        }
        void SetUp() override
        {
            //各自需要加入的数据
            std::cout<<"单元测试初始化\n";
            _mymap.insert(std::make_pair("hello","你好"));
            _mymap.insert(std::make_pair("bye","再见"));
        }
        void TearDown() override
        {
            //各自需要清理的数据
            _mymap.clear();
            std::cout<<"单元测试清理\n";
        }
        static void TearDownTestCase()
        {
            //总的需要清除的数据
            std::cout<<"所有单元测试执行后，初始化总环境\n";
        }
    public://私有成员不能在类外面访问
        std::unordered_map<std::string,std::string> _mymap;
};

TEST_F(MyTest,insert_test)
{
    _mymap.insert(std::make_pair("enemy","敌人"));
    ASSERT_EQ(_mymap.size(),3);
}
TEST_F(MyTest,size_test)
{
    ASSERT_EQ(_mymap.size(),2);
}

int main(int argc,char* argv[])
{
    testing::InitGoogleTest(&argc,argv);
    RUN_ALL_TESTS();
    return 0;
}